/**
 * Copyright 2009. Felix Dorner.
 * This code is licensed under the Eclipse Public License v1.0
 * http://www.eclipse.org/org/documents/epl-v10.html
 *
 * $Id$
 */
package com.objectcarpentry.kaylee;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see com.objectcarpentry.kaylee.KayleeFactory
 * @model kind="package"
 * @generated
 */
public interface KayleePackage extends EPackage {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String copyright = "Copyright 2009. Felix Dorner.\nThis code is licensed under the Eclipse Public License v1.0\nhttp://www.eclipse.org/org/documents/epl-v10.html";

	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "kaylee";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "http://www.objectcarpentry.com/kaylee/xmlns/1.0";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "kaylee";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	KayleePackage eINSTANCE = com.objectcarpentry.kaylee.impl.KayleePackageImpl.init();

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.IPlayable <em>IPlayable</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.IPlayable
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayable()
	 * @generated
	 */
	int IPLAYABLE = 4;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.impl.TrackImpl <em>Track</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.impl.TrackImpl
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getTrack()
	 * @generated
	 */
	int TRACK = 0;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.impl.LibraryImpl <em>Library</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.impl.LibraryImpl
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getLibrary()
	 * @generated
	 */
	int LIBRARY = 1;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.impl.PlaylistImpl <em>Playlist</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.impl.PlaylistImpl
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getPlaylist()
	 * @generated
	 */
	int PLAYLIST = 2;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.impl.PlaylistEntryImpl <em>Playlist Entry</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.impl.PlaylistEntryImpl
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getPlaylistEntry()
	 * @generated
	 */
	int PLAYLIST_ENTRY = 3;

	/**
	 * The number of structural features of the '<em>IPlayable</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int IPLAYABLE_FEATURE_COUNT = 0;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.impl.PlayableImpl <em>Playable</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.impl.PlayableImpl
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getPlayable()
	 * @generated
	 */
	int PLAYABLE = 6;

	/**
	 * The feature id for the '<em><b>State</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYABLE__STATE = IPLAYABLE_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Playable</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYABLE_FEATURE_COUNT = IPLAYABLE_FEATURE_COUNT + 1;

	/**
	 * The feature id for the '<em><b>State</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRACK__STATE = PLAYABLE__STATE;

	/**
	 * The feature id for the '<em><b>Title</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRACK__TITLE = PLAYABLE_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Artist</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRACK__ARTIST = PLAYABLE_FEATURE_COUNT + 1;

	/**
	 * The feature id for the '<em><b>Location</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRACK__LOCATION = PLAYABLE_FEATURE_COUNT + 2;

	/**
	 * The feature id for the '<em><b>Hash</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRACK__HASH = PLAYABLE_FEATURE_COUNT + 3;

	/**
	 * The number of structural features of the '<em>Track</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRACK_FEATURE_COUNT = PLAYABLE_FEATURE_COUNT + 4;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.impl.AbstractPlaylistImpl <em>Abstract Playlist</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.impl.AbstractPlaylistImpl
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getAbstractPlaylist()
	 * @generated
	 */
	int ABSTRACT_PLAYLIST = 7;

	/**
	 * The feature id for the '<em><b>State</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ABSTRACT_PLAYLIST__STATE = PLAYABLE__STATE;

	/**
	 * The feature id for the '<em><b>Controller</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ABSTRACT_PLAYLIST__CONTROLLER = PLAYABLE_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Abstract Playlist</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ABSTRACT_PLAYLIST_FEATURE_COUNT = PLAYABLE_FEATURE_COUNT + 1;

	/**
	 * The feature id for the '<em><b>State</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__STATE = ABSTRACT_PLAYLIST__STATE;

	/**
	 * The feature id for the '<em><b>Controller</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__CONTROLLER = ABSTRACT_PLAYLIST__CONTROLLER;

	/**
	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__ELEMENTS = ABSTRACT_PLAYLIST_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.IPlaylist <em>IPlaylist</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.IPlaylist
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlaylist()
	 * @generated
	 */
	int IPLAYLIST = 5;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.PlayableState <em>Playable State</em>}' enum.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.PlayableState
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getPlayableState()
	 * @generated
	 */
	int PLAYABLE_STATE = 12;

	/**
	 * The feature id for the '<em><b>Playlists</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY__PLAYLISTS = ABSTRACT_PLAYLIST_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>Library</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LIBRARY_FEATURE_COUNT = ABSTRACT_PLAYLIST_FEATURE_COUNT + 2;

	/**
	 * The feature id for the '<em><b>State</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYLIST__STATE = ABSTRACT_PLAYLIST__STATE;

	/**
	 * The feature id for the '<em><b>Controller</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYLIST__CONTROLLER = ABSTRACT_PLAYLIST__CONTROLLER;

	/**
	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYLIST__ELEMENTS = ABSTRACT_PLAYLIST_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYLIST__NAME = ABSTRACT_PLAYLIST_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>Playlist</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYLIST_FEATURE_COUNT = ABSTRACT_PLAYLIST_FEATURE_COUNT + 2;

	/**
	 * The feature id for the '<em><b>State</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYLIST_ENTRY__STATE = PLAYABLE__STATE;

	/**
	 * The feature id for the '<em><b>Track</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYLIST_ENTRY__TRACK = PLAYABLE_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Playlist</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYLIST_ENTRY__PLAYLIST = PLAYABLE_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>Playlist Entry</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PLAYLIST_ENTRY_FEATURE_COUNT = PLAYABLE_FEATURE_COUNT + 2;

	/**
	 * The number of structural features of the '<em>IPlaylist</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int IPLAYLIST_FEATURE_COUNT = IPLAYABLE_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.impl.FilteredPlaylistImpl <em>Filtered Playlist</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.impl.FilteredPlaylistImpl
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getFilteredPlaylist()
	 * @generated
	 */
	int FILTERED_PLAYLIST = 8;

	/**
	 * The feature id for the '<em><b>State</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FILTERED_PLAYLIST__STATE = ABSTRACT_PLAYLIST__STATE;

	/**
	 * The feature id for the '<em><b>Controller</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FILTERED_PLAYLIST__CONTROLLER = ABSTRACT_PLAYLIST__CONTROLLER;

	/**
	 * The feature id for the '<em><b>Filter</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FILTERED_PLAYLIST__FILTER = ABSTRACT_PLAYLIST_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Delegate</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FILTERED_PLAYLIST__DELEGATE = ABSTRACT_PLAYLIST_FEATURE_COUNT + 1;

	/**
	 * The feature id for the '<em><b>Elements</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FILTERED_PLAYLIST__ELEMENTS = ABSTRACT_PLAYLIST_FEATURE_COUNT + 2;

	/**
	 * The number of structural features of the '<em>Filtered Playlist</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FILTERED_PLAYLIST_FEATURE_COUNT = ABSTRACT_PLAYLIST_FEATURE_COUNT + 3;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.IPlayerListener <em>IPlayer Listener</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.IPlayerListener
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayerListener()
	 * @generated
	 */
	int IPLAYER_LISTENER = 10;

	/**
	 * The meta object id for the '<em>IPlaylist Controller</em>' data type.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.IPlaylistController
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlaylistController()
	 * @generated
	 */
	int IPLAYLIST_CONTROLLER = 14;

	/**
	 * The meta object id for the '<em>IPlayable Filter</em>' data type.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.IPlayableFilter
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayableFilter()
	 * @generated
	 */
	int IPLAYABLE_FILTER = 15;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.IPlayer <em>IPlayer</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.IPlayer
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayer()
	 * @generated
	 */
	int IPLAYER = 9;

	/**
	 * The number of structural features of the '<em>IPlayer</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int IPLAYER_FEATURE_COUNT = 0;

	/**
	 * The number of structural features of the '<em>IPlayer Listener</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int IPLAYER_LISTENER_FEATURE_COUNT = 0;

	/**
	 * The meta object id for the '{@link com.objectcarpentry.kaylee.IPlayerEvent <em>IPlayer Event</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see com.objectcarpentry.kaylee.IPlayerEvent
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayerEvent()
	 * @generated
	 */
	int IPLAYER_EVENT = 11;

	/**
	 * The number of structural features of the '<em>IPlayer Event</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int IPLAYER_EVENT_FEATURE_COUNT = 0;

	/**
	 * The meta object id for the '<em>URI</em>' data type.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.common.util.URI
	 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getURI()
	 * @generated
	 */
	int URI = 13;


	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.Track <em>Track</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Track</em>'.
	 * @see com.objectcarpentry.kaylee.Track
	 * @generated
	 */
	EClass getTrack();

	/**
	 * Returns the meta object for the attribute '{@link com.objectcarpentry.kaylee.Track#getTitle <em>Title</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Title</em>'.
	 * @see com.objectcarpentry.kaylee.Track#getTitle()
	 * @see #getTrack()
	 * @generated
	 */
	EAttribute getTrack_Title();

	/**
	 * Returns the meta object for the attribute '{@link com.objectcarpentry.kaylee.Track#getArtist <em>Artist</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Artist</em>'.
	 * @see com.objectcarpentry.kaylee.Track#getArtist()
	 * @see #getTrack()
	 * @generated
	 */
	EAttribute getTrack_Artist();

	/**
	 * Returns the meta object for the attribute '{@link com.objectcarpentry.kaylee.Track#getLocation <em>Location</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Location</em>'.
	 * @see com.objectcarpentry.kaylee.Track#getLocation()
	 * @see #getTrack()
	 * @generated
	 */
	EAttribute getTrack_Location();

	/**
	 * Returns the meta object for the attribute '{@link com.objectcarpentry.kaylee.Track#getHash <em>Hash</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Hash</em>'.
	 * @see com.objectcarpentry.kaylee.Track#getHash()
	 * @see #getTrack()
	 * @generated
	 */
	EAttribute getTrack_Hash();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.Library <em>Library</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Library</em>'.
	 * @see com.objectcarpentry.kaylee.Library
	 * @generated
	 */
	EClass getLibrary();

	/**
	 * Returns the meta object for the containment reference list '{@link com.objectcarpentry.kaylee.Library#getElements <em>Elements</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Elements</em>'.
	 * @see com.objectcarpentry.kaylee.Library#getElements()
	 * @see #getLibrary()
	 * @generated
	 */
	EReference getLibrary_Elements();

	/**
	 * Returns the meta object for the containment reference list '{@link com.objectcarpentry.kaylee.Library#getPlaylists <em>Playlists</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Playlists</em>'.
	 * @see com.objectcarpentry.kaylee.Library#getPlaylists()
	 * @see #getLibrary()
	 * @generated
	 */
	EReference getLibrary_Playlists();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.Playlist <em>Playlist</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Playlist</em>'.
	 * @see com.objectcarpentry.kaylee.Playlist
	 * @generated
	 */
	EClass getPlaylist();

	/**
	 * Returns the meta object for the containment reference list '{@link com.objectcarpentry.kaylee.Playlist#getElements <em>Elements</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Elements</em>'.
	 * @see com.objectcarpentry.kaylee.Playlist#getElements()
	 * @see #getPlaylist()
	 * @generated
	 */
	EReference getPlaylist_Elements();

	/**
	 * Returns the meta object for the attribute '{@link com.objectcarpentry.kaylee.Playlist#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see com.objectcarpentry.kaylee.Playlist#getName()
	 * @see #getPlaylist()
	 * @generated
	 */
	EAttribute getPlaylist_Name();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.PlaylistEntry <em>Playlist Entry</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Playlist Entry</em>'.
	 * @see com.objectcarpentry.kaylee.PlaylistEntry
	 * @generated
	 */
	EClass getPlaylistEntry();

	/**
	 * Returns the meta object for the reference '{@link com.objectcarpentry.kaylee.PlaylistEntry#getTrack <em>Track</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Track</em>'.
	 * @see com.objectcarpentry.kaylee.PlaylistEntry#getTrack()
	 * @see #getPlaylistEntry()
	 * @generated
	 */
	EReference getPlaylistEntry_Track();

	/**
	 * Returns the meta object for the container reference '{@link com.objectcarpentry.kaylee.PlaylistEntry#getPlaylist <em>Playlist</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the container reference '<em>Playlist</em>'.
	 * @see com.objectcarpentry.kaylee.PlaylistEntry#getPlaylist()
	 * @see #getPlaylistEntry()
	 * @generated
	 */
	EReference getPlaylistEntry_Playlist();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.IPlayable <em>IPlayable</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>IPlayable</em>'.
	 * @see com.objectcarpentry.kaylee.IPlayable
	 * @model instanceClass="com.objectcarpentry.kaylee.IPlayable"
	 * @generated
	 */
	EClass getIPlayable();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.IPlaylist <em>IPlaylist</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>IPlaylist</em>'.
	 * @see com.objectcarpentry.kaylee.IPlaylist
	 * @model instanceClass="com.objectcarpentry.kaylee.IPlaylist" superTypes="com.objectcarpentry.kaylee.IPlayable"
	 * @generated
	 */
	EClass getIPlaylist();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.Playable <em>Playable</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Playable</em>'.
	 * @see com.objectcarpentry.kaylee.Playable
	 * @generated
	 */
	EClass getPlayable();

	/**
	 * Returns the meta object for the attribute '{@link com.objectcarpentry.kaylee.Playable#getState <em>State</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>State</em>'.
	 * @see com.objectcarpentry.kaylee.Playable#getState()
	 * @see #getPlayable()
	 * @generated
	 */
	EAttribute getPlayable_State();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.AbstractPlaylist <em>Abstract Playlist</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Abstract Playlist</em>'.
	 * @see com.objectcarpentry.kaylee.AbstractPlaylist
	 * @generated
	 */
	EClass getAbstractPlaylist();

	/**
	 * Returns the meta object for the attribute '{@link com.objectcarpentry.kaylee.AbstractPlaylist#getController <em>Controller</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Controller</em>'.
	 * @see com.objectcarpentry.kaylee.AbstractPlaylist#getController()
	 * @see #getAbstractPlaylist()
	 * @generated
	 */
	EAttribute getAbstractPlaylist_Controller();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.FilteredPlaylist <em>Filtered Playlist</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Filtered Playlist</em>'.
	 * @see com.objectcarpentry.kaylee.FilteredPlaylist
	 * @generated
	 */
	EClass getFilteredPlaylist();

	/**
	 * Returns the meta object for the attribute '{@link com.objectcarpentry.kaylee.FilteredPlaylist#getFilter <em>Filter</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Filter</em>'.
	 * @see com.objectcarpentry.kaylee.FilteredPlaylist#getFilter()
	 * @see #getFilteredPlaylist()
	 * @generated
	 */
	EAttribute getFilteredPlaylist_Filter();

	/**
	 * Returns the meta object for the reference '{@link com.objectcarpentry.kaylee.FilteredPlaylist#getDelegate <em>Delegate</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Delegate</em>'.
	 * @see com.objectcarpentry.kaylee.FilteredPlaylist#getDelegate()
	 * @see #getFilteredPlaylist()
	 * @generated
	 */
	EReference getFilteredPlaylist_Delegate();

	/**
	 * Returns the meta object for the reference list '{@link com.objectcarpentry.kaylee.FilteredPlaylist#getElements <em>Elements</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Elements</em>'.
	 * @see com.objectcarpentry.kaylee.FilteredPlaylist#getElements()
	 * @see #getFilteredPlaylist()
	 * @generated
	 */
	EReference getFilteredPlaylist_Elements();

	/**
	 * Returns the meta object for data type '{@link com.objectcarpentry.kaylee.IPlaylistController <em>IPlaylist Controller</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for data type '<em>IPlaylist Controller</em>'.
	 * @see com.objectcarpentry.kaylee.IPlaylistController
	 * @model instanceClass="com.objectcarpentry.kaylee.IPlaylistController" typeParameters="T"
	 * @generated
	 */
	EDataType getIPlaylistController();

	/**
	 * Returns the meta object for data type '{@link com.objectcarpentry.kaylee.IPlayableFilter <em>IPlayable Filter</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for data type '<em>IPlayable Filter</em>'.
	 * @see com.objectcarpentry.kaylee.IPlayableFilter
	 * @model instanceClass="com.objectcarpentry.kaylee.IPlayableFilter"
	 * @generated
	 */
	EDataType getIPlayableFilter();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.IPlayer <em>IPlayer</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>IPlayer</em>'.
	 * @see com.objectcarpentry.kaylee.IPlayer
	 * @model instanceClass="com.objectcarpentry.kaylee.IPlayer"
	 * @generated
	 */
	EClass getIPlayer();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.IPlayerListener <em>IPlayer Listener</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>IPlayer Listener</em>'.
	 * @see com.objectcarpentry.kaylee.IPlayerListener
	 * @model instanceClass="com.objectcarpentry.kaylee.IPlayerListener"
	 * @generated
	 */
	EClass getIPlayerListener();

	/**
	 * Returns the meta object for class '{@link com.objectcarpentry.kaylee.IPlayerEvent <em>IPlayer Event</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>IPlayer Event</em>'.
	 * @see com.objectcarpentry.kaylee.IPlayerEvent
	 * @model instanceClass="com.objectcarpentry.kaylee.IPlayerEvent"
	 * @generated
	 */
	EClass getIPlayerEvent();

	/**
	 * Returns the meta object for enum '{@link com.objectcarpentry.kaylee.PlayableState <em>Playable State</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for enum '<em>Playable State</em>'.
	 * @see com.objectcarpentry.kaylee.PlayableState
	 * @generated
	 */
	EEnum getPlayableState();

	/**
	 * Returns the meta object for data type '{@link org.eclipse.emf.common.util.URI <em>URI</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for data type '<em>URI</em>'.
	 * @see org.eclipse.emf.common.util.URI
	 * @model instanceClass="org.eclipse.emf.common.util.URI"
	 * @generated
	 */
	EDataType getURI();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	KayleeFactory getKayleeFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.impl.TrackImpl <em>Track</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.impl.TrackImpl
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getTrack()
		 * @generated
		 */
		EClass TRACK = eINSTANCE.getTrack();

		/**
		 * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TRACK__TITLE = eINSTANCE.getTrack_Title();

		/**
		 * The meta object literal for the '<em><b>Artist</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TRACK__ARTIST = eINSTANCE.getTrack_Artist();

		/**
		 * The meta object literal for the '<em><b>Location</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TRACK__LOCATION = eINSTANCE.getTrack_Location();

		/**
		 * The meta object literal for the '<em><b>Hash</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TRACK__HASH = eINSTANCE.getTrack_Hash();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.impl.LibraryImpl <em>Library</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.impl.LibraryImpl
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getLibrary()
		 * @generated
		 */
		EClass LIBRARY = eINSTANCE.getLibrary();

		/**
		 * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference LIBRARY__ELEMENTS = eINSTANCE.getLibrary_Elements();

		/**
		 * The meta object literal for the '<em><b>Playlists</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference LIBRARY__PLAYLISTS = eINSTANCE.getLibrary_Playlists();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.impl.PlaylistImpl <em>Playlist</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.impl.PlaylistImpl
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getPlaylist()
		 * @generated
		 */
		EClass PLAYLIST = eINSTANCE.getPlaylist();

		/**
		 * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PLAYLIST__ELEMENTS = eINSTANCE.getPlaylist_Elements();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute PLAYLIST__NAME = eINSTANCE.getPlaylist_Name();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.impl.PlaylistEntryImpl <em>Playlist Entry</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.impl.PlaylistEntryImpl
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getPlaylistEntry()
		 * @generated
		 */
		EClass PLAYLIST_ENTRY = eINSTANCE.getPlaylistEntry();

		/**
		 * The meta object literal for the '<em><b>Track</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PLAYLIST_ENTRY__TRACK = eINSTANCE.getPlaylistEntry_Track();

		/**
		 * The meta object literal for the '<em><b>Playlist</b></em>' container reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PLAYLIST_ENTRY__PLAYLIST = eINSTANCE.getPlaylistEntry_Playlist();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.IPlayable <em>IPlayable</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.IPlayable
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayable()
		 * @generated
		 */
		EClass IPLAYABLE = eINSTANCE.getIPlayable();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.IPlaylist <em>IPlaylist</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.IPlaylist
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlaylist()
		 * @generated
		 */
		EClass IPLAYLIST = eINSTANCE.getIPlaylist();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.impl.PlayableImpl <em>Playable</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.impl.PlayableImpl
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getPlayable()
		 * @generated
		 */
		EClass PLAYABLE = eINSTANCE.getPlayable();

		/**
		 * The meta object literal for the '<em><b>State</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute PLAYABLE__STATE = eINSTANCE.getPlayable_State();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.impl.AbstractPlaylistImpl <em>Abstract Playlist</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.impl.AbstractPlaylistImpl
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getAbstractPlaylist()
		 * @generated
		 */
		EClass ABSTRACT_PLAYLIST = eINSTANCE.getAbstractPlaylist();

		/**
		 * The meta object literal for the '<em><b>Controller</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute ABSTRACT_PLAYLIST__CONTROLLER = eINSTANCE.getAbstractPlaylist_Controller();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.impl.FilteredPlaylistImpl <em>Filtered Playlist</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.impl.FilteredPlaylistImpl
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getFilteredPlaylist()
		 * @generated
		 */
		EClass FILTERED_PLAYLIST = eINSTANCE.getFilteredPlaylist();

		/**
		 * The meta object literal for the '<em><b>Filter</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute FILTERED_PLAYLIST__FILTER = eINSTANCE.getFilteredPlaylist_Filter();

		/**
		 * The meta object literal for the '<em><b>Delegate</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference FILTERED_PLAYLIST__DELEGATE = eINSTANCE.getFilteredPlaylist_Delegate();

		/**
		 * The meta object literal for the '<em><b>Elements</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference FILTERED_PLAYLIST__ELEMENTS = eINSTANCE.getFilteredPlaylist_Elements();

		/**
		 * The meta object literal for the '<em>IPlaylist Controller</em>' data type.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.IPlaylistController
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlaylistController()
		 * @generated
		 */
		EDataType IPLAYLIST_CONTROLLER = eINSTANCE.getIPlaylistController();

		/**
		 * The meta object literal for the '<em>IPlayable Filter</em>' data type.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.IPlayableFilter
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayableFilter()
		 * @generated
		 */
		EDataType IPLAYABLE_FILTER = eINSTANCE.getIPlayableFilter();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.IPlayer <em>IPlayer</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.IPlayer
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayer()
		 * @generated
		 */
		EClass IPLAYER = eINSTANCE.getIPlayer();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.IPlayerListener <em>IPlayer Listener</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.IPlayerListener
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayerListener()
		 * @generated
		 */
		EClass IPLAYER_LISTENER = eINSTANCE.getIPlayerListener();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.IPlayerEvent <em>IPlayer Event</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.IPlayerEvent
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getIPlayerEvent()
		 * @generated
		 */
		EClass IPLAYER_EVENT = eINSTANCE.getIPlayerEvent();

		/**
		 * The meta object literal for the '{@link com.objectcarpentry.kaylee.PlayableState <em>Playable State</em>}' enum.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see com.objectcarpentry.kaylee.PlayableState
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getPlayableState()
		 * @generated
		 */
		EEnum PLAYABLE_STATE = eINSTANCE.getPlayableState();

		/**
		 * The meta object literal for the '<em>URI</em>' data type.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see org.eclipse.emf.common.util.URI
		 * @see com.objectcarpentry.kaylee.impl.KayleePackageImpl#getURI()
		 * @generated
		 */
		EDataType URI = eINSTANCE.getURI();

	}

} //KayleePackage
